﻿using System;

namespace Borg
{
    [Flags]
    public enum QualificationState : long
    {
        None                                 = 0L,
        QualificationMissing                 = 1L,
        MethodQualificationMissing           = 2L,
        ContractNameAlreadyExists            = 4L,
        ContractHasNoSlotDefinitions         = 8L,
        SlotDefinitionAlreadyExists          = 16L,
        ParamDefinitionAlreadyExists         = 32L,
        ParamDefinitionEmptyName             = 64L,
        ParamValueAlreadyExists              = 128L,
        ParamValueEmptyName                  = 256L,
        PluginNameAlreadyExists              = 512L,
        PluginHasNoExtensions                = 1024L,
        ExtensionNameAlreadyExists           = 2048L,
        ExtensionNoDefaultConstructor        = 4096L,
        ExtensionOnCreatingMethodNotFound    = 8192L,
        ExtensionOnCreatedMethodNotFound     = 16384L,
        ExtensionOnReleasingMethodNotFound   = 32768L,
        ExtensionOnReleasedMethodNotFound    = 65536L,
        ExtensionHasNoPlugs                  = 131072L,
        PlugNameAlreadyExists                = 262144L,
        PlugSlotDefinitionNotFound           = 524288L,
        PlugSlotInterfaceNotImplemented      = 1048576L,
        PlugParamValuesMissing               = 2097152L,
        PlugParamValueNotAssignable          = 4194304L,
        PlugOnPluggingMethodNotFound         = 8388608L,
        PlugOnPluggedMethodNotFound          = 16777216L,
        PlugOnUnpluggingMethodNotFound       = 33554432L,
        PlugOnUnpluggedMethodNotFound        = 67108864L,
        SlotNameAlreadyExists                = 134217728L,
        SlotSlotDefinitionNotFound           = 268435456L,
        SlotOnOpeningMethodNotFound          = 536870912L,
        SlotOnOpenedMethodNotFound           = 1073741824L,
        SlotOnClosingMethodNotFound          = 2147483648L,
        SlotOnClosedMethodNotFound           = 4294967296L,
        SlotOnRegisteringMethodNotFound      = 8589934592L,
        SlotOnRegisteredMethodNotFound       = 17179869184L,
        SlotOnDeregisteringMethodNotFound    = 34359738368L,
        SlotOnDeregisteredMethodNotFound     = 68719476736L,
        SlotOnPluggingMethodNotFound         = 137438953472L,
        SlotOnPluggingCanceledMethodNotFound = 274877906944L,
        SlotOnPluggedMethodNotFound          = 549755813888L,
        SlotOnUnpluggingMethodNotFound       = 1099511627776L,
        SlotOnUnpluggedMethodNotFound        = 2199023255552L,
        SlotOnSelectionChangedMethodNotFound = 4398046511104L,
    }
}

